// Login
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1726:UsePreferredTerms", MessageId = "Login", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.ApplicationServices.IAuthentication`1.#Login(System.String,System.String,System.Boolean,System.String)", Justification = "For consistency with ASP.NET, Login was chosen over the recommended alternatives.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1726:UsePreferredTerms", MessageId = "Login", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.ApplicationServices.AuthenticationBase`1.#Login(System.String,System.String,System.Boolean,System.String)", Justification = "For consistency with ASP.NET, Login was chosen over the recommended alternatives.")]

// Logout
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1726:UsePreferredTerms", MessageId = "Logout", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.ApplicationServices.IAuthentication`1.#Logout()", Justification = "For consistency with ASP.NET, Logout was chosen over the recommended alternatives.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1726:UsePreferredTerms", MessageId = "Logout", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.ApplicationServices.AuthenticationBase`1.#Logout()", Justification = "For consistency with ASP.NET, Logout was chosen over the recommended alternatives.")]

[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Ria", Scope = "namespace", Target = "OpenRiaServices.DomainServices.Hosting", Justification = "Spelling is correct.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Portability", "CA1903:UseOnlyApiFromTargetedFramework", MessageId = "System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", Justification = "OpenRiaServices.DomainServices.Server requires .NET 3.5 SP1.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "System.Linq.Ria.ExpressionVisitor.#Visit(System.Linq.Expressions.Expression)", Justification = "Ported code.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2201:DoNotRaiseReservedExceptionTypes", Scope = "member", Target = "System.Linq.Ria.ExpressionVisitor.#Visit(System.Linq.Expressions.Expression)", Justification = "Ported code.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2201:DoNotRaiseReservedExceptionTypes", Scope = "member", Target = "System.Linq.Ria.ExpressionVisitor.#VisitBinding(System.Linq.Expressions.MemberBinding)", Justification = "Ported code.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "member", Target = "System.Linq.Ria.TypeUtility.#ConvertValue(System.Type,System.Object)", Justification = "Conversion to string is done once per code-path. There are code-paths where no conversion to a string is needed at all, hence there is no initial conversion to a string.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", MessageId = "2#", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainOperationEntry.#Invoke(System.Object,System.Object[],System.Int32&)", Justification = "Out parameter is acceptable for this low-level API.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Composable", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainOperationEntry.#IsComposable", Justification = "Spelling is correct.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Composable", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainOperationAttribute.#IsComposable", Justification = "Spelling is correct.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainServiceDescription.#IncludeMap", Justification = "Nested generic-types are acceptable for this low-level API.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainServiceDescription.#ValidateMethodSignature(OpenRiaServices.DomainServices.Server.DomainOperationEntry)", Justification = "This internal API's complexity is acceptable for now.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", MessageId = "iif", Scope = "resource", Target = "OpenRiaServices.DomainServices.Server.Linq.Resource.resources", Justification = "Spelling is correct.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "member", Target = "OpenRiaServices.DomainServices.Client.TypeUtility.#ConvertValue(System.Type,System.Object)", Justification = "Conversion to string is done once per code-path. There are code-paths where no conversion to a string is needed at all, hence there is no initial conversion to a string.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Composable", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainOperationEntry.#.ctor(System.Reflection.MethodInfo,OpenRiaServices.DomainServices.Server.DomainOperation,System.Boolean,System.Boolean)", Justification = "Spelling is correct.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainServiceDescription.#IsValidMethodSignature(System.Reflection.MethodInfo,OpenRiaServices.DomainServices.Server.DomainOperation,System.Exception&)")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Composable", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.QueryAttribute.#IsComposable", Justification = "Spelling is correct.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "OpenRiaServices.DomainServices.Client.ExpressionVisitor.#Visit(System.Linq.Expressions.Expression)")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2201:DoNotRaiseReservedExceptionTypes", Scope = "member", Target = "OpenRiaServices.DomainServices.Client.ExpressionVisitor.#Visit(System.Linq.Expressions.Expression)")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2201:DoNotRaiseReservedExceptionTypes", Scope = "member", Target = "OpenRiaServices.DomainServices.Client.ExpressionVisitor.#VisitBinding(System.Linq.Expressions.MemberBinding)")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "OpenRiaServices.DomainServices.Client.TypeUtility.#ConvertValue(System.Type,System.Object,System.Boolean)")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainServiceContext+DomainServiceContextServiceContainer.#.ctor(System.ComponentModel.Design.IServiceContainer)")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainServiceDescription.#GetDescriptionInternal(System.Object,System.Boolean)")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainServiceDescription.#ValidateEntityAssociations(System.Type,System.ComponentModel.PropertyDescriptorCollection)")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainServiceDescription.#GetDescriptionInternal(System.Type)")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes", Scope = "type", Target = "OpenRiaServices.DomainServices.Server.MetadataProviderAttribute")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainServiceDescription.#IsValidMethodSignature(OpenRiaServices.DomainServices.Server.DomainOperationEntry,OpenRiaServices.DomainServices.Server.DomainOperation,System.Exception&)")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes", Scope = "type", Target = "OpenRiaServices.DomainServices.Server.DomainServiceDescriptionProviderAttribute")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainServiceDescription.#GetDescription(System.Type)")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes", Scope = "type", Target = "OpenRiaServices.DomainServices.Hosting.DomainIdentifierAttribute", Justification = "Ideally this attribute will only be surfaced through derived types.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1703:ResourceStringsShouldBeSpelledCorrectly", MessageId = "composable", Scope = "resource", Target = "OpenRiaServices.DomainServices.Server.Data.Resource.resources", Justification = "This is the accepted spelling in our APIs.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", MessageId = "2#", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainService.#Query(OpenRiaServices.DomainServices.Server.QueryDescription,System.Collections.Generic.ICollection`1<OpenRiaServices.DomainServices.Hosting.ValidationResult>,System.Int32&)", Justification = "Out parameter is acceptable for this low-level API.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.ChangeSet.#GetAssociatedEntities`2(!!1)", Justification = "API design decision")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.ChangeSet.#ChangeSetEntries", Justification = "API design decision")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.ChangeSet.#GetAssociatedChanges`2(!!0,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>)", Justification = "This is the generic signature we need.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.ChangeSet.#GetAssociatedChanges`2(!!0,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,OpenRiaServices.DomainServices.Server.ChangeOperation)", Justification = "This is the generic signature we need.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.ChangeSet.#GetAssociatedChanges`2(!!0,System.Linq.Expressions.Expression`1<System.Func`2<!!0,!!1>>,OpenRiaServices.DomainServices.Server.ChangeOperation)", Justification = "This is the generic signature we need.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.ChangeSet.#OrderChangeset(System.Collections.Generic.IEnumerable`1<OpenRiaServices.DomainServices.Server.ChangeSetEntry>)", Justification = "I don't thing breaking into multiple methods will simplify anything.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.ChangeSet.#GetAssociatedChangesInternal(System.Object,System.Linq.Expressions.LambdaExpression,System.Nullable`1<OpenRiaServices.DomainServices.Server.ChangeOperation>)", Justification = "TODO to investigate simplification.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.ChangeSetEntry.#Associations", Justification = "This property needs a setter for deserialization.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.ChangeSetEntry.#EntityActions", Justification = "This property needs a setter for deserialization.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.ChangeSetEntry.#OriginalAssociations", Justification = "This property needs a setter for deserialization.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Ria", Scope = "namespace", Target = "OpenRiaServices.DomainServices.Hosting", Justification = "Product name")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "OpenRiaServices.DomainServices.Hosting", Justification = "There will be more types")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes", Scope = "type", Target = "OpenRiaServices.DomainServices.DomainIdentifierAttribute", Justification = "Designed for derivation")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", MessageId = "1#", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainService.#Query(OpenRiaServices.DomainServices.Server.QueryDescription,System.Collections.Generic.IEnumerable`1<System.ComponentModel.DataAnnotations.ValidationResult>&,System.Int32&)", Justification = "API design")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", MessageId = "2#", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainService.#Query(OpenRiaServices.DomainServices.Server.QueryDescription,System.Collections.Generic.IEnumerable`1<System.ComponentModel.DataAnnotations.ValidationResult>&,System.Int32&)", Justification = "API design")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", MessageId = "2#", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainService.#Invoke(OpenRiaServices.DomainServices.Server.DomainOperationEntry,System.Object[],System.Collections.Generic.IEnumerable`1<System.ComponentModel.DataAnnotations.ValidationResult>&)", Justification = "API design")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "OpenRiaServices.DomainServices.Hosting")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2240:ImplementISerializableCorrectly", Scope = "type", Target = "OpenRiaServices.DomainServices.Server.DomainException", Justification = "1) It would prevent this assembly from being fully transparent. 2) We don't have any need to serialize DomainException ever. In our case we'll always be using FaultException.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.QueryDescription.#ParameterValues", Justification = "API design")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1506:AvoidExcessiveClassCoupling", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.ApplicationServices.AuthenticationCodeProcessor.#ProcessGeneratedCode(OpenRiaServices.DomainServices.Server.DomainServiceDescription,System.CodeDom.CodeCompileUnit,System.Collections.Generic.IDictionary`2<System.Type,System.CodeDom.CodeTypeDeclaration>)")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.ApplicationServices.IAuthentication`1.#GetUser()", Justification = "This must be a method to support the DomainService syntax.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "System.ComponentModel.DataAnnotations", Justification = "There are more types in another assembly.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA2210:AssembliesShouldHaveValidStrongNames", Justification = "Assemblies are delay-signed.")]

// TODO: 
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "OpenRiaServices.DomainServices", Justification = "This will be revisited later as part of API review")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainServiceDescriptionProvider.#CreateDescription(OpenRiaServices.DomainServices.Server.DomainServiceDescription)", Justification = "Needs to be an instance method for forward compatibility reasons.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1019:DefineAccessorsForAttributeArguments", Scope = "type", Target = "OpenRiaServices.DomainServices.Server.RequiresRoleAttribute", Justification = "The Roles property exposes constructor argument values.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainServiceDescriptionProvider.#GetDescription()", Justification = "This method does non-trial work so should remain a method.")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.InvokeDescription.#ParameterValues", Justification = "API design")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", MessageId = "1#", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainService.#Invoke(OpenRiaServices.DomainServices.Server.InvokeDescription,System.Collections.Generic.IEnumerable`1<System.ComponentModel.DataAnnotations.ValidationResult>&)", Justification = "API design")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainServiceDescription.#IsValidMethodSignature(OpenRiaServices.DomainServices.Server.DomainServiceDescription,OpenRiaServices.DomainServices.Server.DomainOperationEntry,OpenRiaServices.DomainServices.Server.DomainOperation,System.Exception&)")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.DomainServiceDescription.#DiscoverComplexTypes()")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Scope = "member", Target = "System.ComponentModel.DataAnnotations.AuthorizationResult.#Allowed")]
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "OpenRiaServices.DomainServices.Server.ValidationUtilities.#TryValidateObjectRecursive(System.Object,System.String,System.ComponentModel.DataAnnotations.ValidationContext,System.Collections.Generic.List`1<System.ComponentModel.DataAnnotations.ValidationResult>)", Justification = "This internal API's complexity is acceptable for now.")]
